home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-02
/
faq-s.zip
/
NUV.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-04-13
|
7KB
|
242 lines
{$R-,S-,I-,D-,F+,V-,B-,N- }
{$M 65500,0,0 }
unit nuv;
interface
uses crt,gentypes,modem,configrt,gensubs,userret,subs1,subs2,textret,flags,mainr1;
procedure nuvit;
procedure newvotex;
implementation
var cnt,cnt1:integer;
procedure nuvit;
var n,x:integer;
u:userrec;
begin
for n:=1 to numusers do begin
seek (ufile,n);
read (ufile,u);
for x:=1 to 50 do
u.newvoteit[x]:=0;
writeufile (u,n);
end;
readurec;
end;
procedure newvotex;
var u:userrec;
q,n:integer;
c:char;
unum2:integer;
cv,alv:boolean;
procedure look;
var cntz:integer;
begin
cnt1:=0;
alv:=false;
for cntz:=1 to 50 do begin
if urec.newvoteit[cntz]=n then begin
alv:=true;
cntz:=50;
end;
end;
end;
procedure showuser;
begin
look;
if not alv then begin
writeln;
if (ansigraphics in urec.config) then
write (#27+'[2J') else
write (^L);
writeln(^P'┌──────────────┤'^R'FAQ New User Voting'^P'├──────────────┐');
write (^P'│'^R'Handle'^P': ');
tab (^S+u.handle,{33}42); writeln (^P'│');
writeln(^P'├─────────────────────────────────────────────────┤');
write (^P'│'^R'# of Yes Votes '^P' : ');
tab (^S+strr(u.newvoteyes),{21}30); writeln (^P'│');
write (^P'│'^R'# of No Votes '^P' : ');
tab (^S+strr(u.newvoteno),{21}30); writeln (^P'│');
write (^P'│'^R'# to be Validated'^P' : ');
tab (^S+strr(valnu),{21}30); writeln (^P'│');
write (^P'│'^R'# to be Deleted '^P' : ');
tab (^S+strr(delnu),{21}30); writeln (^P'│');
write (^P'│'^R'# Yes Votes Needed'^P': ');
tab (^S+strr(valnu-u.newvoteyes),{21}30); writeln (^P'│');
write (^P'│'^R'# No Votes Needed '^P': ');
tab (^S+strr(delnu-u.newvoteno),{21}30); writeln (^P'│');
writeln(^P'└─────────────────────────────────────────────────┘');
writeln;
writestr (^P'Vote on this user? [y/n]: '^U'*');
if not yes then alv:=true;
if not alv then begin
writestr (^P'Display '+u.handle+'''s infoform? '^U'*');
if yes then begin {lookinfo(u.handle)} showinfoform(u.handle, 5);
pause;
end;
end;
end;
repeat
if alv then input:='A' else begin
buflen:=1;
write(^M^R'Vote on '^S+u.handle+^P': '^S'Y'^R'es '^S'N'^R'o '^S'A'^R'bstain');
if issysop then write (^S' '^S'V'^R'eto');
writestr(^S' CR'^P'/'^R'Abstain'^P': '^S'*');
end;
if (length(input)<1) then input:=('A');
input:=upstring(input[1]);
case input[1] of
'Y':begin
cv:=false;
cnt:=0;
seek (ufile,n);
u.newvoteyes:=u.newvoteyes+1;
while cnt<=50 do begin
if urec.newvoteit[cnt]=0 then begin
urec.newvoteit[cnt]:=n;
cnt:=50;
if (u.newvoteyes>=valnu) and (autonuv)
then begin
u.level:=volvl;
u.udlevel:=voflvl;
u.udpoints:=vofps;
u.note:='NUV Validated';
writeufile (u,n);
nuvit;
Writeln('User has been auto-validated.');
end
else
Writeln ('Vote: Yes, Answer Entered.');
cv:=true;
end;
cnt:=cnt+1;
end;
nnu:=nnu-1;
end;
'N':begin
cv:=false;
cnt:=0;
seek (ufile,n);
u.newvoteno:=u.newvoteno+1;
while cnt<=50 do begin
if urec.newvoteit[cnt]=0 then begin
urec.newvoteit[cnt]:=n;
cnt:=50;
if (u.newvoteno>=delnu) and (autonuv)
then begin
u.level:=-1;
u.note:='NUV Deleted';
writeufile (u,n);
nuvit;
Writeln('User has been auto-deleted.');
end
else
Writeln ('Vote: No, Answer Entered.');
cv:=true;
end;
cnt:=cnt+1;
end;
nnu:=nnu-1;
end;
'A':begin
cv:=false;
if not alv then begin
writeln ('Vote: Abstain, Thank You!');
end;
cv:=true;
end;
'V':if issysop then begin
writestr (^S'V'^R'alidate or '^S'D'^R'elete'^P': '^U'*');
c:=upcase (input[1]);
case c of
'V':begin
u.level:=volvl;
u.udlevel:=voflvl;
u.udpoints:=vofps;
u.note:='NUV Validated';
writeufile (u,n);
cnt:=cnt+1;
nnu:=nnu-1;
nuvit;
writeln ('User has been validated.'); end;
'D':begin
u.level:=-1;
u.note:='NUV Deleted';
writeufile (u,n);
nuvit;
cnt:=cnt+1;
nnu:=nnu-1;
writeln ('User has been deleted.'); end;
end; end;
end;{case}
until cv;
end;{showuser}
begin
writehdr ('New User Voting');
if urec.level<newvotelvl then exit;
if (nnu<1) then begin
Writeln ('No new users on NUV list.');
end;
repeat
q:=menu ('New User Voting','NUV','VLQ?');
writeln;
case q of
1:begin for n:=1 to numusers do begin
seek (ufile,n);
read (ufile,u);
if (u.level<logonlevel) and (length(u.handle)>0) then showuser;
end;
writeurec;
seek (ufile,n);
write (ufile,u);
readurec;
end;
2:begin
writehdr ('List Pending Users');
writeln ('Unum Handle');
if asciigraphics in urec.config then writeln ('──── ──────') else writeln ('---- -----');
for n:=1 to numusers do begin
seek (ufile,n);
read (ufile,u);
if (u.level=defuserlevel) and (length(u.handle)>0) then begin
tab (strr(n),6); writeln (u.handle); end;
end; end;
4:begin
writeln ('
C
╔═════════════════════════════════════╗H
s');
writeln ('u
C║
New User Voting Section
║H
s');
writeln ('u
C╚═════════════════════════════════════╝HHC╔════
s');
writeln ('u
═════════════════════════════════╗HC║ [
L
]
s');
writeln ('u
List Users in NUV
║HC║ [
Q
s');
writeln ('u
]
Quit
║HC║ [
s');
writeln ('u
V
]
Vote on User(s)
║H
s');
writeln ('u
C║ [
?
]
View This Menu
s');
writeln ('u
║HC╚═════════════════════════════════════╝
');
writeln;
pause;
end;
end
until (hungupon) or (q=3);
end;
procedure deleteuser (n:integer);
var u:userrec;
begin
delallmail (n);
fillchar (u,sizeof(u),0);
u.infoform1:=-1;
u.emailannounce:=-1;
writeufile (u,n);
end;
begin
end.